創建您的第一個Composer / Packagist軟件包

PHP

Posted by PHP on 2019-11-04 10:00:00

如何使用ComposerPackagist為PHP社區創建軟件包(或更新軟件包)做出貢獻。首先,如果您是PHP開發人員,但還不知道什麼是Composer,請看一下為什麼應該使用Composer以及如何開始使用它來獲取更多信息。

使用作曲家

Composer是PHP的軟件包管理器。您可以使用社區開發的軟件包,也可以您的軟件包做出貢獻。在這裡,我將展示如何創建一個項目/程序包,在其中安裝Composer並發送給Packagist,其他開發人員可以在他們的項目中使用它。

 

創建包裝

您可以創建一個新項目或更新一個項目以使用Composer。我將創建一個世界一流的問候。這是一個簡單的類,但是您可以創建複雜的項目並與其他開發人員共享。我將使用“ hello-world”作為項目的名稱。作曲家使用“供應商/包裝”名稱格式。在這裡,我們可以將項目名稱命名為“ vendor”,將我的名字命名為“ juniorgrossi”,並將程序包名稱命名為“ hello-world”

文件結構

您可以將所有文件放在主目錄中,但是我強烈建議創建另一個目錄,即“ src”,以便於理解和維護代碼。項目結構將從以下內容開始:hello - world / src / HelloWorld / SayHello.php。我們的SayHello.php  文件將具有:

  • <?php
  • 命名空間HelloWorld;
  • SayHello 類
  • {
  • 公共靜態函數世界()
  • {
  • 返回“ Hello World,作曲家!” ;
  • }
  • }

啟動作曲家

項目準備就緒後,我們可以在其中“安裝” Composer。這只是在根目錄下創建一個“ composer.json”文件,但是Composer可以為您做到這一點。在項目根目錄下:composer init您將收到以下Composer響應:

  • Macbook:Hello-World Grossi $作曲家init
  • 歡迎使用Composer配置生成器
  • 該命令將指導您創建composer.json配置。
  • 軟件包名稱(/)[juniorgrossi / hello-world]:
  • 您可以接受默認值,也可以自定義默認值,例如“您的姓名/您好” 或所需的內容。完成所有Composer問題,例如:
  • 軟件包名稱(/)[juniorgrossi / hello-world]:juniorgrossi / hello-world
  • 說明[]:我的第一個Composer項目
  • 作者[初級Grossi ]:您的姓名
  • 最小穩定性[]:dev
  • 定義您的依賴項。
  • 您是否想以交互方式定義您的依賴項(需要)[是]?沒有
  • 您想以交互方式定義您的開發依賴項(require-dev)嗎?沒有
  • {
  • “ name” :“ juniorgrossi / hello-world” ,
  • “ description” :“我的第一個Composer項目” ,
  • “作者” :[
  • {
  • “ name” :“您的名字” ,
  • “電子郵件” :“ [email protected]
  • }
  • ],
  • “ minimum-stability” :“ dev” ,
  • “要求” :{
  • }
  • }
  • 您確認生成[是]嗎?是

現在,您已經在根目錄中保存了“ composer.json”文件。幾乎準備就緒,但我們必須做一些更改:

  • {
  • “ name” :“ juniorgrossi / hello-world” ,
  • “ description” :“我的第一個Composer項目” ,
  • “作者” :[
  • {
  • “ name” :“您的名字” ,
  • “電子郵件” :“ [email protected]
  • }
  • ],
  • “ minimum-stability” :“ dev” ,
  • “要求” :{
  • “ php” :“> = 5.3.0”
  • },
  • “自動加載” :{
  • “ psr-0” :{
  • “ HelloWorld” :“ src /”
  • }
  • }
  • }

我們在這裡所做的是添加有關PHP 5.3的信息作為最低要求(“ 要求”部分),並告訴Composer “自動加載”(使用PSR-0)“ src”目錄中具有“ HelloWorld”命名空間的所有文件。

測試包

舒爾,我們想做一個簡單的測試來驗證我們的課是否運作良好。您可以創建一個新項目並在其中“粘貼”您的類,或者在您自己的項目中進行測試,這樣會更好,更容易。我們正在創建一個Composer項目,因此我們必須在項目內部安裝Composer文件。因此,在根目錄下運行“ composer install”進行安裝

  • 作曲家安裝

由於“ composer.json”中只有“ php> = 5.3.0”,因此Composer將僅安裝其自己的文件。安裝Composer後,在您的根目錄下創建一個“ tests”目錄。使用以下內容在其中創建“ test.php”文件:

  • <?php
  • require_once __DIR__ 。'/../vendor/autoload.php' ; //使用Composer自動加載功能自動加載文件
  • 使用HelloWorld \ SayHello;
  • 迴聲SayHello :: world ();

轉到終端(或在“ tests”目錄中創建一個PHP Web服務器)並輸入:

  • PHP測試/ test.php

您將看到“ Hello World,Composer!”。現在正在工作。

發送到Packagist.org

現在您的項目正在運行,您想將其發送給Packagist。最簡單的方法是使用Git 將項目推送到Github。轉到Github並創建一個名為“ helloworld”的新公共倉庫,在您的根目錄下啟動Git項目並將其推送:

  • git初始化
  • git添加
  • git commit -m “第一次提交”
  • git remote add origin [email protected]:用戶名/helloworld.git
  • git push origin master

現在,您將項目放入Github存儲庫中,並準備將其發送給Packagist。轉到Packagist網站,創建您的帳戶,登錄並提交包裹。Packagist'll要求您提供存儲庫URL(Git / Svn / Hg)。粘貼到[email protected]:username / helloworld.git  並單擊“檢查!”。Packagist將檢查您的項目並返回項目名稱。如果正確,請接受。

包裝專家詳細信息

每次對Github進行新提交時,都必須更新Packagist。轉到您的帳戶,您的包裹,然後單擊“強制更新!”。Packagist將前往Github並更新資源。您可以打開“自動更新”,轉到您的Github存儲庫,單擊“服務掛鉤”後的“設置”,然後單擊“打包程序”服務。有您的信息更新,例如:

  • 用戶:您的Packagist用戶名,例如juniorgrossi
  • 令牌:您的API令牌,可以在Packagist設置鏈接中找到
  • 域: packagist.org好!自動更新完成,您的軟件包可供其他開發人員使用。

我們的第一個Composer軟件包已完成,但是您可以使用它做更多的事情。謝謝!